// SPDX-License-Identifier: GPL-2.0-or-later
// Copyright (c) 2023 Yevhen Babiichuk (DustDFG)

#ifndef _TUBE_SET_BUILDER_HPP_
#define _TUBE_SET_BUILDER_HPP_

#include <vector>
#include <cstdint>

#include <DotSort/GameRules/TubeSet.hpp>

class TubeSetBuilder
{
	protected:
		virtual void push(TubeSet* tubeSet, uint8_t tubeIndex, uint8_t dot) const
		{
			tubeSet->tubes[tubeIndex].push(dot);
		}

	public:
		virtual TubeSet* operator()() = 0;
};

#endif
